এসকিউএল(Structured Query Language) হলো একটি বিশেষায়িত প্রোগ্রামিং ভাষা, যা রিলেশনাল ডাটাবেস ম্যানেজমেন্ট সিস্টেম (RDBMS) এর সাথে ডেটা ম্যানিপুলেট ও অ্যাক্সেস করার জন্য ব্যবহৃত হয়। SQL মূলত ডেটাবেস থেকে ডেটা ইনসার্ট, আপডেট, ডিলিট এবং রিট্রিভ করার জন্য ব্যবহৃত হয়। SQL এর মাধ্যমে ডেটার উপর বিভিন্ন কোয়েরি চালিয়ে ডেটা ম্যানেজ করা হয়, যেমন ডেটা সিলেক্ট করা, ফিল্টার করা, গ্রুপ করা, এবং অ্যাগ্রিগেট করা।
SQL (Structured Query Language) হল একটি ডেটাবেস ম্যানেজমেন্ট সিস্টেমের (DBMS) সাথে যোগাযোগ করার জন্য ব্যবহৃত একটি ভাষা। SQL এর মাধ্যমে ডেটাবেসের মধ্যে ডেটা সংরক্ষণ, সংশোধন, পুনরুদ্ধার এবং ম্যানেজমেন্ট করা যায়। SQL প্রধানত রিলেশনাল ডেটাবেস এর জন্য ব্যবহৃত হয় এবং এটি ANSI এবং ISO স্ট্যান্ডার্ড ভাষা হিসেবে স্বীকৃত। SQL-এর সাহায্যে আপনি ডেটাবেসের মধ্যে টেবিল তৈরি, ডেটা যোগ, ডেটা আপডেট, ডেটা মুছে ফেলা, এবং ডেটা ফিল্টারিং করতে পারেন।
SQL-এর প্রধান কাজগুলো নিম্নরূপ:
SQL এর কমান্ডগুলোকে কয়েকটি বিভাগে ভাগ করা হয়:
DDL (Data Definition Language): ডেটাবেসের কাঠামো সংজ্ঞায়িত করতে ব্যবহৃত হয়।
DML (Data Manipulation Language): ডেটাবেসের মধ্যে ডেটা ম্যানিপুলেট করতে ব্যবহৃত হয়।
DCL (Data Control Language): ডেটাবেসে অ্যাক্সেস এবং পারমিশন নিয়ন্ত্রণ করা।
TCL (Transaction Control Language): ট্রানজাকশন পরিচালনা করা।
SQL ব্যবহার করার জন্য একটি রিলেশনাল ডেটাবেস ম্যানেজমেন্ট সিস্টেম (RDBMS) প্রয়োজন, যেমন MySQL, PostgreSQL, SQLite ইত্যাদি। নিচে MySQL ব্যবহার করে SQL এর প্রথম ধাপগুলো দেওয়া হল:
Linux (Ubuntu) এ MySQL ইনস্টল করতে:
sudo apt update
sudo apt install mysql-server
Windows এবং Mac এর জন্য, MySQL-এর অফিসিয়াল ডাউনলোড পেজ থেকে ডাউনলোড করে ইনস্টল করতে পারেন।
sudo systemctl start mysql
mysql -u root -p
উপরের কমান্ডে root
হল MySQL এর ডিফল্ট ইউজারনেম এবং -p
ব্যবহার করা হয়েছে পাসওয়ার্ডের জন্য।
CREATE DATABASE school;
উপরের কমান্ডটি school
নামে একটি নতুন ডাটাবেস তৈরি করবে।
USE school;
CREATE TABLE students (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100),
age INT,
grade VARCHAR(10)
);
এই কমান্ডটি students
নামে একটি টেবিল তৈরি করবে, যেখানে তিনটি কলাম থাকবে— id
, name
, age
, এবং grade
।
INSERT INTO students (name, age, grade)
VALUES ('John Doe', 15, '9th');
উপরের কমান্ডে students
টেবিলে একটি রেকর্ড ইনসার্ট করা হয়েছে।
SELECT * FROM students;
এই কুয়েরিটি students
টেবিল থেকে সমস্ত ডেটা রিট্রিভ করবে।
UPDATE students
SET grade = '10th'
WHERE name = 'John Doe';
এই কুয়েরিটি John Doe
এর grade
কলামটি আপডেট করে 10th
করবে।
DELETE FROM students
WHERE name = 'John Doe';
এই কুয়েরিটি students
টেবিল থেকে John Doe
নামের রেকর্ডটি মুছে ফেলবে।
ALTER TABLE students
ADD email VARCHAR(100);
এই কমান্ডটি students
টেবিলে একটি নতুন কলাম email
যোগ করবে।
DROP TABLE students;
এই কুয়েরিটি সম্পূর্ণ students
টেবিল মুছে দেবে।
ইন্ডেক্স ডেটাবেসে ডেটা দ্রুত রিট্রিভ করতে সাহায্য করে। SQL এ ইন্ডেক্স তৈরি করার জন্য CREATE INDEX
কমান্ড ব্যবহার করা হয়।
CREATE INDEX idx_name ON students (name);
উপরের কমান্ডটি students
টেবিলের name
কলামের উপর একটি ইন্ডেক্স তৈরি করবে, যা দ্রুত অনুসন্ধানকে সহায়তা করবে।
JOINS ব্যবহার করে একাধিক টেবিল থেকে ডেটা একসাথে নিয়ে আসা যায়। SQL এ প্রধানত চার ধরনের JOIN রয়েছে:
ধরুন আমাদের কাছে দুটি টেবিল আছে: students
এবং courses
। আমরা এই টেবিলগুলোকে JOIN করতে পারি:
SELECT students.name, courses.course_name
FROM students
INNER JOIN courses
ON students.id = courses.student_id;
উপরের কুয়েরিটি students
এবং courses
টেবিলের id ভিত্তিতে মিলিত রেকর্ডগুলো রিট্রিভ করবে।
SQL-এ অনেক ধরনের ফাংশন আছে, যা ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয়। কয়েকটি গুরুত্বপূর্ণ ফাংশন হল:
SELECT COUNT(*) FROM students;
উপরের কুয়েরিটি students
টেবিলের মোট রেকর্ড সংখ্যা রিটার্ন করবে।
SELECT AVG(age) FROM students;
উপরের কুয়েরিটি students
টেবিলের age
কলামের গড় মান রিটার্ন করবে।
SQL হল একটি অত্যন্ত শক্তিশালী এবং প্রভাবশালী ভাষা, যা ডেটাবেস পরিচালনা এবং ম্যানিপুলেশনের জন্য ব্যবহৃত হয়। এটি ডেটাবেসের মধ্যে ডেটা সংরক্ষণ, আপডেট, এবং রিট্রিভ করার জন্য একটি আদর্শ সমাধান। SQL এর মাধ্যমে আপনি ডেটাবেসের কার্যক্রম খুবই সহজে নিয়ন্ত্রণ করতে পারবেন এবং বড় ডেটাসেটের জন্যও এটি অত্যন্ত কার্যকর।